package com.cmwa.scbp.business.postMaintenance.dao;


import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cmwa.scbp.base.annotation.MybatisDao;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.business.postMaintenance.entity.PostPersonnelChangeVo;

/**
 * 岗位人员变更表数据访问层
 * 
 * @author ex-sujh
 * @date 2019-02-22 10:46:12
 */
@MybatisDao
public interface PostPersonnelChangeDao {

	/** 新增变更记录 */
	void insertPostPersonnelChange(PostPersonnelChangeVo postPersonnelChange);
	
	/** 根据ID物理删除 */
	void physicDeletePostPersonnelChangeById(@Param("id") String id);
	
	/** 根据ID逻辑删除 */
	void logicDeletePostPersonnelChangeById(@Param("id") String id);
	
	/** 更新变更记录 */
	void updatePostPersonnelChangeById(PostPersonnelChangeVo postPersonnelChange);
	
	/** 列表分页查询 */
	List<PostPersonnelChangeVo> postPersonnelChangeListPage(SearchParam sp);
	
	/** 根据ID查询变更记录 */
	PostPersonnelChangeVo getPostPersonnelChangeById(@Param("id") String id);
	
	/** 根据条件查询符合岗位的系列产品集合 */
	List<Map<String, String>> queryPrjListByCondition(SearchParam sp);
	
	/** 根据条件查询符合岗位的管理人集合 */
	List<Map<String, String>> queryManagerListByCondition(SearchParam sp);
	
	/** 根据资源ID和岗位ID查询变更记录 */
	List<PostPersonnelChangeVo> queryChangeByResourceIdAndPostId(SearchParam sp);
	
	/** 批量保存变更记录 */
	void savePostPersonnelChange(List<PostPersonnelChangeVo> list);
	
	/** 批量更新 */
	void batchUpdatePersonnelChange(List<PostPersonnelChangeVo> list);
	
	/** 查询生效日小于等于当天的最新岗位人员信息变更记录 */
	List<PostPersonnelChangeVo> queryInvalidList(SearchParam sp);
	
	/** 根据ID删除变更记录 */
	void deletePostPersonnelChange(PostPersonnelChangeVo vo);
	
}
